home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Programming / tek / task / signal.c < prev    next >
Encoding:
C/C++ Source or Header  |  2001-05-12  |  621 b   |  34 lines

  1.  
  2. #include "tek/exec.h"
  3. #include "tek/kn/exec.h"
  4.  
  5. /* 
  6. **    TEKlib
  7. **    (C) 2001 TEK neoscientists
  8. **    all rights reserved.
  9. **
  10. **    TVOID TSignal(TAPTR task, TUINT signals)
  11. **
  12. **    send signals to a task.
  13. **
  14. **    an event is thrown when not all of the affecting signals
  15. **    are already present in the task's signal mask.
  16. **
  17. */
  18.  
  19. TVOID TSignal(TAPTR task, TUINT signals)
  20. {
  21.     if (task && signals)
  22.     {
  23.         kn_lock(&((TTASK *) task)->siglock);
  24.  
  25.         if ((signals & ((TTASK *) task)->sigstate) != signals)
  26.         {
  27.             ((TTASK *) task)->sigstate |= signals;
  28.             kn_doevent(&((TTASK *) task)->sigevent);
  29.         }
  30.     
  31.         kn_unlock(&((TTASK *) task)->siglock);
  32.     }
  33. }
  34.